

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0622 */
/* at Tue Jan 19 11:14:07 2038
 */
/* Compiler settings for ATLProject2.idl:
    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622 
    protocol : all , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __ATLProject2_i_h__
#define __ATLProject2_i_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IComponentRegistrar_FWD_DEFINED__
#define __IComponentRegistrar_FWD_DEFINED__
typedef interface IComponentRegistrar IComponentRegistrar;

#endif 	/* __IComponentRegistrar_FWD_DEFINED__ */


#ifndef __IATLSimpleObject_FWD_DEFINED__
#define __IATLSimpleObject_FWD_DEFINED__
typedef interface IATLSimpleObject IATLSimpleObject;

#endif 	/* __IATLSimpleObject_FWD_DEFINED__ */


#ifndef __IATLControl_FWD_DEFINED__
#define __IATLControl_FWD_DEFINED__
typedef interface IATLControl IATLControl;

#endif 	/* __IATLControl_FWD_DEFINED__ */


#ifndef __IATLSimpleObject1_FWD_DEFINED__
#define __IATLSimpleObject1_FWD_DEFINED__
typedef interface IATLSimpleObject1 IATLSimpleObject1;

#endif 	/* __IATLSimpleObject1_FWD_DEFINED__ */


#ifndef __IATLSimpleObject2_FWD_DEFINED__
#define __IATLSimpleObject2_FWD_DEFINED__
typedef interface IATLSimpleObject2 IATLSimpleObject2;

#endif 	/* __IATLSimpleObject2_FWD_DEFINED__ */


#ifndef __CompReg_FWD_DEFINED__
#define __CompReg_FWD_DEFINED__

#ifdef __cplusplus
typedef class CompReg CompReg;
#else
typedef struct CompReg CompReg;
#endif /* __cplusplus */

#endif 	/* __CompReg_FWD_DEFINED__ */


#ifndef __ATLSimpleObject_FWD_DEFINED__
#define __ATLSimpleObject_FWD_DEFINED__

#ifdef __cplusplus
typedef class ATLSimpleObject ATLSimpleObject;
#else
typedef struct ATLSimpleObject ATLSimpleObject;
#endif /* __cplusplus */

#endif 	/* __ATLSimpleObject_FWD_DEFINED__ */


#ifndef __ATLControl_FWD_DEFINED__
#define __ATLControl_FWD_DEFINED__

#ifdef __cplusplus
typedef class ATLControl ATLControl;
#else
typedef struct ATLControl ATLControl;
#endif /* __cplusplus */

#endif 	/* __ATLControl_FWD_DEFINED__ */


#ifndef ___IATLSimpleObject1Events_FWD_DEFINED__
#define ___IATLSimpleObject1Events_FWD_DEFINED__
typedef interface _IATLSimpleObject1Events _IATLSimpleObject1Events;

#endif 	/* ___IATLSimpleObject1Events_FWD_DEFINED__ */


#ifndef __ATLSimpleObject1_FWD_DEFINED__
#define __ATLSimpleObject1_FWD_DEFINED__

#ifdef __cplusplus
typedef class ATLSimpleObject1 ATLSimpleObject1;
#else
typedef struct ATLSimpleObject1 ATLSimpleObject1;
#endif /* __cplusplus */

#endif 	/* __ATLSimpleObject1_FWD_DEFINED__ */


#ifndef __ATLSimpleObject2_FWD_DEFINED__
#define __ATLSimpleObject2_FWD_DEFINED__

#ifdef __cplusplus
typedef class ATLSimpleObject2 ATLSimpleObject2;
#else
typedef struct ATLSimpleObject2 ATLSimpleObject2;
#endif /* __cplusplus */

#endif 	/* __ATLSimpleObject2_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "shobjidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


#ifndef __IComponentRegistrar_INTERFACE_DEFINED__
#define __IComponentRegistrar_INTERFACE_DEFINED__

/* interface IComponentRegistrar */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_IComponentRegistrar;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a817e7a2-43fa-11d0-9e44-00aa00b6770a")
    IComponentRegistrar : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Attach( 
            /* [in] */ BSTR bstrPath) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterAll( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE UnregisterAll( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetComponents( 
            /* [out] */ SAFEARRAY * *pbstrCLSIDs,
            /* [out] */ SAFEARRAY * *pbstrDescriptions) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RegisterComponent( 
            /* [in] */ BSTR bstrCLSID) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE UnregisterComponent( 
            /* [in] */ BSTR bstrCLSID) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IComponentRegistrarVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IComponentRegistrar * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IComponentRegistrar * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IComponentRegistrar * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IComponentRegistrar * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IComponentRegistrar * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IComponentRegistrar * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IComponentRegistrar * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Attach )( 
            IComponentRegistrar * This,
            /* [in] */ BSTR bstrPath);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterAll )( 
            IComponentRegistrar * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterAll )( 
            IComponentRegistrar * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetComponents )( 
            IComponentRegistrar * This,
            /* [out] */ SAFEARRAY * *pbstrCLSIDs,
            /* [out] */ SAFEARRAY * *pbstrDescriptions);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RegisterComponent )( 
            IComponentRegistrar * This,
            /* [in] */ BSTR bstrCLSID);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterComponent )( 
            IComponentRegistrar * This,
            /* [in] */ BSTR bstrCLSID);
        
        END_INTERFACE
    } IComponentRegistrarVtbl;

    interface IComponentRegistrar
    {
        CONST_VTBL struct IComponentRegistrarVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IComponentRegistrar_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IComponentRegistrar_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IComponentRegistrar_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IComponentRegistrar_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IComponentRegistrar_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IComponentRegistrar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IComponentRegistrar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IComponentRegistrar_Attach(This,bstrPath)	\
    ( (This)->lpVtbl -> Attach(This,bstrPath) ) 

#define IComponentRegistrar_RegisterAll(This)	\
    ( (This)->lpVtbl -> RegisterAll(This) ) 

#define IComponentRegistrar_UnregisterAll(This)	\
    ( (This)->lpVtbl -> UnregisterAll(This) ) 

#define IComponentRegistrar_GetComponents(This,pbstrCLSIDs,pbstrDescriptions)	\
    ( (This)->lpVtbl -> GetComponents(This,pbstrCLSIDs,pbstrDescriptions) ) 

#define IComponentRegistrar_RegisterComponent(This,bstrCLSID)	\
    ( (This)->lpVtbl -> RegisterComponent(This,bstrCLSID) ) 

#define IComponentRegistrar_UnregisterComponent(This,bstrCLSID)	\
    ( (This)->lpVtbl -> UnregisterComponent(This,bstrCLSID) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IComponentRegistrar_INTERFACE_DEFINED__ */


#ifndef __IATLSimpleObject_INTERFACE_DEFINED__
#define __IATLSimpleObject_INTERFACE_DEFINED__

/* interface IATLSimpleObject */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IATLSimpleObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("bdcdcc78-3adb-4b68-8e09-aeaee65f517b")
    IATLSimpleObject : public IDispatch
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IATLSimpleObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IATLSimpleObject * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IATLSimpleObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IATLSimpleObject * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IATLSimpleObject * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IATLSimpleObject * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IATLSimpleObject * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IATLSimpleObject * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        END_INTERFACE
    } IATLSimpleObjectVtbl;

    interface IATLSimpleObject
    {
        CONST_VTBL struct IATLSimpleObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IATLSimpleObject_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IATLSimpleObject_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IATLSimpleObject_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IATLSimpleObject_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IATLSimpleObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IATLSimpleObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IATLSimpleObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IATLSimpleObject_INTERFACE_DEFINED__ */


#ifndef __IATLControl_INTERFACE_DEFINED__
#define __IATLControl_INTERFACE_DEFINED__

/* interface IATLControl */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IATLControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1bc1baf8-dc19-4048-afde-0480c9cad727")
    IATLControl : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCpuType( 
            /* [out] */ BSTR *cpuType) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IATLControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IATLControl * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IATLControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IATLControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IATLControl * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IATLControl * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IATLControl * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IATLControl * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCpuType )( 
            IATLControl * This,
            /* [out] */ BSTR *cpuType);
        
        END_INTERFACE
    } IATLControlVtbl;

    interface IATLControl
    {
        CONST_VTBL struct IATLControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IATLControl_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IATLControl_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IATLControl_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IATLControl_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IATLControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IATLControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IATLControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IATLControl_GetCpuType(This,cpuType)	\
    ( (This)->lpVtbl -> GetCpuType(This,cpuType) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IATLControl_INTERFACE_DEFINED__ */


#ifndef __IATLSimpleObject1_INTERFACE_DEFINED__
#define __IATLSimpleObject1_INTERFACE_DEFINED__

/* interface IATLSimpleObject1 */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IATLSimpleObject1;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6d73bf2e-8865-4344-8b07-db9688e4cf77")
    IATLSimpleObject1 : public IDispatch
    {
    public:
    };
    
    
#else 	/* C style interface */

    typedef struct IATLSimpleObject1Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IATLSimpleObject1 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IATLSimpleObject1 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IATLSimpleObject1 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IATLSimpleObject1 * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IATLSimpleObject1 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IATLSimpleObject1 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IATLSimpleObject1 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        END_INTERFACE
    } IATLSimpleObject1Vtbl;

    interface IATLSimpleObject1
    {
        CONST_VTBL struct IATLSimpleObject1Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IATLSimpleObject1_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IATLSimpleObject1_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IATLSimpleObject1_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IATLSimpleObject1_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IATLSimpleObject1_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IATLSimpleObject1_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IATLSimpleObject1_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IATLSimpleObject1_INTERFACE_DEFINED__ */


#ifndef __IATLSimpleObject2_INTERFACE_DEFINED__
#define __IATLSimpleObject2_INTERFACE_DEFINED__

/* interface IATLSimpleObject2 */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IATLSimpleObject2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("c4b03cd7-96f5-4153-841f-4d50d05406af")
    IATLSimpleObject2 : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCpuType( 
            /* [retval][out] */ BSTR *cputype) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE test1( 
            /* [retval][out] */ BSTR *outstr) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetResult( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCpuId( 
            /* [retval][out] */ BSTR *cpuId) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetBiosType( 
            /* [retval][out] */ BSTR *biosType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetOsType( 
            /* [retval][out] */ BSTR *osType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetMotherBoardType( 
            /* [retval][out] */ BSTR *motherboardtype) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetMemoryInfo( 
            /* [retval][out] */ BSTR *memoryinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVideoInfo( 
            /* [retval][out] */ BSTR *videoinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetDisplayInfo( 
            /* [retval][out] */ BSTR *displayinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetStorageInfo( 
            /* [retval][out] */ BSTR *storageinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCdRomInfo( 
            /* [retval][out] */ BSTR *cdrominfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetNetWorkInfo( 
            /* [retval][out] */ BSTR *networkinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAudioInfo( 
            /* [retval][out] */ BSTR *audioinfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetHostName( 
            /* [retval][out] */ BSTR *hostname) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_MotherBoard( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IATLSimpleObject2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IATLSimpleObject2 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IATLSimpleObject2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IATLSimpleObject2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IATLSimpleObject2 * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IATLSimpleObject2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IATLSimpleObject2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IATLSimpleObject2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCpuType )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *cputype);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *test1 )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *outstr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetResult )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCpuId )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *cpuId);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetBiosType )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *biosType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetOsType )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *osType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetMotherBoardType )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *motherboardtype);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetMemoryInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *memoryinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVideoInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *videoinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *displayinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetStorageInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *storageinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCdRomInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *cdrominfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetNetWorkInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *networkinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAudioInfo )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *audioinfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetHostName )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *hostname);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MotherBoard )( 
            IATLSimpleObject2 * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IATLSimpleObject2Vtbl;

    interface IATLSimpleObject2
    {
        CONST_VTBL struct IATLSimpleObject2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IATLSimpleObject2_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IATLSimpleObject2_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IATLSimpleObject2_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IATLSimpleObject2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IATLSimpleObject2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IATLSimpleObject2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IATLSimpleObject2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IATLSimpleObject2_GetCpuType(This,cputype)	\
    ( (This)->lpVtbl -> GetCpuType(This,cputype) ) 

#define IATLSimpleObject2_test1(This,outstr)	\
    ( (This)->lpVtbl -> test1(This,outstr) ) 

#define IATLSimpleObject2_GetResult(This,pVal)	\
    ( (This)->lpVtbl -> GetResult(This,pVal) ) 

#define IATLSimpleObject2_GetCpuId(This,cpuId)	\
    ( (This)->lpVtbl -> GetCpuId(This,cpuId) ) 

#define IATLSimpleObject2_GetBiosType(This,biosType)	\
    ( (This)->lpVtbl -> GetBiosType(This,biosType) ) 

#define IATLSimpleObject2_GetOsType(This,osType)	\
    ( (This)->lpVtbl -> GetOsType(This,osType) ) 

#define IATLSimpleObject2_GetMotherBoardType(This,motherboardtype)	\
    ( (This)->lpVtbl -> GetMotherBoardType(This,motherboardtype) ) 

#define IATLSimpleObject2_GetMemoryInfo(This,memoryinfo)	\
    ( (This)->lpVtbl -> GetMemoryInfo(This,memoryinfo) ) 

#define IATLSimpleObject2_GetVideoInfo(This,videoinfo)	\
    ( (This)->lpVtbl -> GetVideoInfo(This,videoinfo) ) 

#define IATLSimpleObject2_GetDisplayInfo(This,displayinfo)	\
    ( (This)->lpVtbl -> GetDisplayInfo(This,displayinfo) ) 

#define IATLSimpleObject2_GetStorageInfo(This,storageinfo)	\
    ( (This)->lpVtbl -> GetStorageInfo(This,storageinfo) ) 

#define IATLSimpleObject2_GetCdRomInfo(This,cdrominfo)	\
    ( (This)->lpVtbl -> GetCdRomInfo(This,cdrominfo) ) 

#define IATLSimpleObject2_GetNetWorkInfo(This,networkinfo)	\
    ( (This)->lpVtbl -> GetNetWorkInfo(This,networkinfo) ) 

#define IATLSimpleObject2_GetAudioInfo(This,audioinfo)	\
    ( (This)->lpVtbl -> GetAudioInfo(This,audioinfo) ) 

#define IATLSimpleObject2_GetHostName(This,hostname)	\
    ( (This)->lpVtbl -> GetHostName(This,hostname) ) 

#define IATLSimpleObject2_get_MotherBoard(This,pVal)	\
    ( (This)->lpVtbl -> get_MotherBoard(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IATLSimpleObject2_INTERFACE_DEFINED__ */



#ifndef __ChenHanATLProject2Lib_LIBRARY_DEFINED__
#define __ChenHanATLProject2Lib_LIBRARY_DEFINED__

/* library ChenHanATLProject2Lib */
/* [custom][version][uuid] */ 


EXTERN_C const IID LIBID_ChenHanATLProject2Lib;

EXTERN_C const CLSID CLSID_CompReg;

#ifdef __cplusplus

class DECLSPEC_UUID("0713b0d2-3ef0-4538-82e4-0e7cf6e7b096")
CompReg;
#endif

EXTERN_C const CLSID CLSID_ATLSimpleObject;

#ifdef __cplusplus

class DECLSPEC_UUID("0a43e06e-7920-47a5-9583-cca84407765c")
ATLSimpleObject;
#endif

EXTERN_C const CLSID CLSID_ATLControl;

#ifdef __cplusplus

class DECLSPEC_UUID("8f3d2d65-178b-4a96-905a-8b9cf45dc054")
ATLControl;
#endif

#ifndef ___IATLSimpleObject1Events_DISPINTERFACE_DEFINED__
#define ___IATLSimpleObject1Events_DISPINTERFACE_DEFINED__

/* dispinterface _IATLSimpleObject1Events */
/* [uuid] */ 


EXTERN_C const IID DIID__IATLSimpleObject1Events;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4df1f47a-def8-43e7-86fa-7861e660b47d")
    _IATLSimpleObject1Events : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct _IATLSimpleObject1EventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _IATLSimpleObject1Events * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _IATLSimpleObject1Events * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _IATLSimpleObject1Events * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _IATLSimpleObject1Events * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _IATLSimpleObject1Events * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _IATLSimpleObject1Events * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _IATLSimpleObject1Events * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        END_INTERFACE
    } _IATLSimpleObject1EventsVtbl;

    interface _IATLSimpleObject1Events
    {
        CONST_VTBL struct _IATLSimpleObject1EventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _IATLSimpleObject1Events_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _IATLSimpleObject1Events_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _IATLSimpleObject1Events_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _IATLSimpleObject1Events_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _IATLSimpleObject1Events_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _IATLSimpleObject1Events_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _IATLSimpleObject1Events_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* ___IATLSimpleObject1Events_DISPINTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_ATLSimpleObject1;

#ifdef __cplusplus

class DECLSPEC_UUID("bab42e63-2646-4aef-b44f-c5365889d72c")
ATLSimpleObject1;
#endif

EXTERN_C const CLSID CLSID_ATLSimpleObject2;

#ifdef __cplusplus

class DECLSPEC_UUID("e087a7c8-83ba-4813-ac4f-6f304ecaae1a")
ATLSimpleObject2;
#endif
#endif /* __ChenHanATLProject2Lib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree(     unsigned long *, LPSAFEARRAY * ); 

unsigned long             __RPC_USER  BSTR_UserSize64(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal64(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree64(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize64(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal64(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal64(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree64(     unsigned long *, LPSAFEARRAY * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


